#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import os
from selenium.webdriver.common.by import By
from utils.dt import format,now
import pathlib
from config.readIni import ReadIni


class ConfigManager():

    # 项目根目录
    BASE_DIR = pathlib.Path(__file__).parent.parent
    # BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    # 页面元素目录
    ELEMENT_DIR = BASE_DIR/'page_element'

    # 截图目录
    SCREENSHOT_DIR=BASE_DIR/'screen_capture'

    # 报告文件
    REPORT_FILE = BASE_DIR/'report.html'

    # 日志目录
    LOG_DIR=BASE_DIR/'logs'

    # 元素定位的类型
    LOCATE_MODE = {
        'css': By.CSS_SELECTOR,
        'xpath': By.XPATH,
        'name': By.NAME,
        'id': By.ID,
        'class': By.CLASS_NAME,
        'text': By.LINK_TEXT
    }

    # 邮件信息
    EMAIL_INFO = {
        'username': '1084502012@qq.com',  # 切换成你自己的地址
        'password': 'QQ邮箱授权码',
        'smtp_host': 'smtp.qq.com',
        'smtp_port': 465
    }

    # 收件人
    ADDRESSEE = [
        '1084502012@qq.com',
    ]

    @property
    def screen_path(self):
        """截图目录"""
        if not os.path.exists(self.SCREENSHOT_DIR):
            os.makedirs(self.SCREENSHOT_DIR)
        now_time = format("%Y%m%d%H%M%S",now())
        screen_file = os.path.join(self.SCREENSHOT_DIR, f"{now_time}.png")
        return now_time, screen_file

    @property
    def log_file(self):
        """日志目录"""
        if not os.path.exists(self.LOG_DIR):
            os.makedirs(self.LOG_DIR)
        return os.path.join(self.LOG_DIR, f'{format("%Y%m",now())}.log')

    @property
    def ini(self):
        """配置文件"""
        ini_file = self.BASE_DIR/'config/config.ini'
        if not os.path.exists(ini_file):
            raise FileNotFoundError(f"配置文件{ini_file}不存在！")
        return ReadIni(ini_file)


cm = ConfigManager()
if __name__ == '__main__':
    pass
